package com.tinchos.core;

import java.util.Iterator;

import com.tinchos.core.excepciones.PersistenceException;
import com.tinchos.core.persistencia.DaoFactory;
import com.tinchos.core.persistencia.dao.AppLoader;
import com.tinchos.entidades.Estudiante;
import com.tinchos.entidades.MateriaAprobada;
import com.tinchos.entidades.MateriaCursando;
import com.tinchos.entidades.facultad.Facultad;
import com.tinchos.entidades.facultad.Materia;
import com.tinchos.entidades.facultad.Plan;

public class Test {
	public static void main(String[] args) throws Exception {
		
		Facultad facu = Facultad.getInstance();
//		facu.guardarFacultad();
		Plan plan = new Plan("Informatica");
		Materia cbc = facu.getMateria("00");
		DaoFactory daof = new DaoFactory();
		AppLoader matDao = (AppLoader) daof.getDAO("com.tinchos.core.persistencia.dao.AppLoader");
		matDao.cargarMaterias();
		
		Materia algebra = facu.getMateria("61.08");
		Materia fisica2 = facu.getMateria("62.03");
		Materia tecnicasDiseño = facu.getMateria("75.10");
		/*
		MateriaAprobada aprobada = new MateriaAprobada(cbc, new Integer(5), new Integer(1));
		MateriaCursando cursando = new MateriaCursando(algebra);
		
		
		Estudiante yo = new Estudiante("Martin");
		
		Carrera ingInf = new Carrera("Informatica", "09");
		ingInf.agregarMateriaAprobada(aprobada);
		ingInf.agregarMateriaCursando(cursando);
		
		yo.setCarrera(ingInf);
		
//		yo.guardarEstudiante();
		*/
		
		
		Estudiante es = Estudiante.cargarEstudiante("Martin");
		System.out.println(es.getNombre());
		System.out.println(es.getCarrera().getNombre());
		System.out.println(es.getCarrera().getMateriasAprobadas());
		System.out.println(es.getCarrera().getMateriasCursando());
		System.out.println("Correlativas para tecnicas de dise�o: ");
		
		Iterator iter = plan.obtenerCorrelativas(tecnicasDiseño).iterator();
		while (iter.hasNext()) {
			Materia element = (Materia) iter.next();
			System.out.println(element.getNombre());
			
		}
		
		System.out.println(es.tieneAprobada(fisica2));
		
		
		
		
	}
}
